<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-tools-libstdcpp" role="wrap">
  <?dbhtml filename="gcc-libstdc++.html"?>

  <sect1info condition="script">
    <productname>gcc-libstdc++</productname>
    <productnumber>&gcc-version;</productnumber>
    <address>&gcc-url;</address>
  </sect1info>

  <title>Libstdc++ из пакета GCC-&gcc-version;</title>

  <indexterm zone="ch-tools-libstdcpp">
    <primary sortas="a-GCC">GCC</primary>
    <secondary>tools, libstdc++</secondary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>Libstdc++ является стандартной библиотекой языка Cи++. Она необходима для правильной работы компилятора g++ (часть GCC написана на языке Си++).
	 Сборку пришлось отложить на этапе <xref linkend="ch-tools-gcc-pass1"/> потому что присутствует зависимость с glibc, которая еще недоступна в каталоге /tools.</para>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&libstdcpp-ch5-sbu;</seg>
        <seg>&libstdcpp-ch5-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>Установка целевой библиотеки Libstdc++</title>

    <note>
      <para><application>Libstdc++</application> является частью исходных кодов пакета GCC. Сначала необходимо распаковать архив с исходным кодом пакета GCC и перейти в каталог <filename>gcc-&gcc-version;</filename>.</para>
    </note>

    <para>Создайте отдельный каталог для сборки Libstdc++:</para>

<screen><userinput remap="pre">mkdir -v build
cd       build</userinput></screen>

    <para>Подготовьте пакет Libstdc++ к компиляции:</para>

<screen><userinput remap="configure">../libstdc++-v3/configure           \
    --host=$LFS_TGT                 \
    --prefix=/tools                 \
    --disable-multilib              \
    --disable-nls                   \
    --disable-libstdcxx-threads     \
    --disable-libstdcxx-pch         \
    --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</userinput></screen>

    <variablelist>
      <title>Значение параметров конфигурации:</title>

      <varlistentry>
        <term><parameter>--host=...</parameter></term>
        <listitem>
          <para>Указывает на использование кросс-компилятора который был установлен вместо компилятора в каталоге <filename>/usr/bin</filename>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>--disable-libstdcxx-threads</parameter></term>
        <listitem>
          <para>Поскольку сборка библиотеки Си для работы с потоками еще не создана, соответствующую библиотеку Си++ скомпилировать тоже не получится.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>--disable-libstdcxx-pch</parameter></term>
        <listitem>
          <para>Этот аргумент указывает на то, что не требуется установка предварительно скомпилированых заголовочных файлов, которые на данном этапе не требуются.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/&gcc-version;</parameter></term>
        <listitem>
          <para>Это каталог, где будет выполнятся поиск стандартных заголовочных файлов компилятором Си++. При обычной сборке, эта информация автоматически передается сценарию <command>configure</command> пакета Libstdc++ из каталога верхнего уровня. В нашем случае, эта информация должны быть указана явно.</para>
        </listitem>
      </varlistentry>

    </variablelist>

    <para>Чтобы скомпилировать пакет Libstdc++, необходимо выполнить команду:</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>Установите бибоиотеку:</para>

<screen><userinput remap="install">make install</userinput></screen>

  </sect2>

  <sect2 role="content">
    <title/>

    <para>Подробная информация об этом пакете находится в
    <xref linkend="contents-gcc" role="."/></para>

  </sect2>

</sect1>
